home *** CD-ROM | disk | FTP | other *** search
/ Go64! / Go64_1999-08_1999_CSW_Side_A.d64 / eternal calendar (.txt) < prev    next >
Commodore BASIC  |  2023-02-26  |  7KB  |  220 lines

  1. 5 ifi9=0theni9=1:i8=peek(186):ifpeek(648)<>204thenload"zeichensatz",i8,1
  2. 10 gosub59000:gosub6100
  3. 20 i7=1:i8=1
  4. 30 ifnottfthengosub1900:gosub5500:mr=r-1:gosub1950
  5. 40 br=mb:tf=0:gosub1600
  6. 50 i4=1:gosub1500:ifri=0then50
  7. 60 ifri=1thengosub1300:i7=i7+1:i8=1:i4=2:ifi7>mntheni7=1
  8. 70 ifri=2thengosub1300:i7=i7-1:i8=1:i4=2:ifi7=0theni7=mn
  9. 80 ifri=3theni8=i8+1:ifi8>hotheni8=1
  10. 90 ifri=4theni8=i8-1:ifi8=0theni8=ho
  11. 100 ifri=5theni6=br:gosub1300:gosub2000:zl=1:br=i6:goto30
  12. 110 oni4gosub1610,1600:goto50
  13. 999 end
  14. 1100 gosub1200:printk$(i5,0);:fori9=1tobr:printk$(i5,1);:next:printk$(i5,2)
  15. 1110 fori9=1toho:printtab(sp)k$(i5,3)left$(l$(0),br)k$(i5,5):next
  16. 1120 printtab(sp)k$(i5,6);:fori9=1tobr:printk$(i5,7);:next:printk$(i5,8);:return
  17. 1200 poke214,zl:poke211,sp:sys58640:return
  18. 1300 gosub1200:fori9=1toho+2:printtab(sp)left$(l$(1),br+2);:ifi9<ho+2thenprint
  19. 1310 next:return
  20. 1400 en$="":i9=0
  21. 1405 print"[164][157]";
  22. 1410 getx9$:ifx9$=""then1410
  23. 1420 ifx9$=chr$(13)then1480
  24. 1430 ifx9$=chr$(20)andi9>0thenprint" [157][157][164][157]";:i9=i9-1:en$=left$(en$,i9)
  25. 1440 ifx9$<" "orx9$>"[218]"then1410
  26. 1450 ifx9$>"_"andx9$<"[193]"then1410
  27. 1460 ifx9$=chr$(34)thenprintchr$(148)x9$chr$(20);
  28. 1470 en$=en$+x9$:printx9$;:i9=i9+1:iflg>i9then1405
  29. 1480 print" ";:return
  30. 1500 ri=0
  31. 1510 getx9$:ifx9$=""then1510
  32. 1520 ifx9$=""thenri=1
  33. 1530 ifx9$="[157]"thenri=2
  34. 1540 ifx9$=""thenri=3
  35. 1550 ifx9$="[145]"thenri=4
  36. 1560 ifx9$=chr$(13)thenri=5
  37. 1570 return
  38. 1600 zl=1:ho=mn%(i7):sp=28
  39. 1605 i5=0:gosub1100
  40. 1610 sp=sp+1:fori6=1toho:zl=zl+1:gosub1200:ifi6=i8thenprint"";
  41. 1620 printmn$(i7,i6)"[146]";:next:zl=1:sp=sp-1
  42. 1630 return
  43. 1700 zl=23:sp=0:gosub1200:printl$(0):printl$(0);:zl=zl-1:gosub1200:en$="[168]":lg=40:gosub1800
  44. 1710 zl=zl+1:gosub1200:printst$;:st$="":en$="":return
  45. 1800 fori9=1tolg:printen$;:next:return
  46. 1900 i5=0:zl=0:sp=0:br=25:ho=23:gosub1100
  47. 1905 zl=2:gosub1200:print"[171]";:fori9=1tobr:print"-";:next:print"[172]":zl=0:sp=sp+1
  48. 1915 st$=mo$(m)+" "+j$:gosub1710:fori4=1to6:zl=zl+2
  49. 1920 st$=left$(wt$(i4),2):gosub1710:next:zl=zl+2
  50. 1925 st$=left$(wt$(0),2):gosub1710:gosub5260
  51. 1930 return
  52. 1950 i5=ml%(m)+(m=2)*sj+1:r=r-1:ifr<0thenr=6
  53. 1955 i9=0:forsp=4to24step4:fori4=rto6:i9=i9+1:zl=i4*3+4:gosub1200
  54. 1960 ifi9=i5thensp=24:i4=6:goto1970
  55. 1965 printright$(str$(i9),2)
  56. 1970 next:r=0:next
  57. 1975 return
  58. 2000 ifi7<>1then2200
  59. 2010 oni8gosub5100,5150,5200,5250,5250,5300,5000,6000,4900
  60. 2200 return
  61. 4800 print"";:sp=0:en$="[160]":lg=39:i4=52263:forzl=0to24:gosub1200:gosub1800
  62. 4805 pokei4+40*zl,96:next:zl=0
  63. 4810 return
  64. 4900 gosub4800:zl=8:sp=8:br=22:ho=5:i5=3:gosub1100:zl=zl+3:sp=sp+1:gosub1200
  65. 4920 print"[200]ave a good time!";
  66. 4940 zl=1:sp=0:gosub1200
  67. 4950 end
  68. 5000 gosub4800:zl=8:sp=9:br=20:ho=5:i5=3:gosub1100:zl=zl+2:sp=sp+1:gosub1200
  69. 5010 print"("mn$(i7,i8)")";
  70. 5020 zl=zl+2:gosub1200:print"[200]it any key.";:lg=1:gosub1400
  71. 5040 zl=8:sp=9:br=20:ho=5:gosub1300
  72. 5050 return
  73. 5100 zl=18:sp=28:br=9:ho=4:i5=1:gosub1100:zl=zl+1:sp=sp+1:gosub1200
  74. 5110 print"[217]ear?"
  75. 5115 zl=zl+2:gosub1200:lg=4:gosub1400:ifen$=""then5130
  76. 5120 j$=right$("    "+en$,4):j=val(j$)
  77. 5125 ifj<1orj>3299then5100
  78. 5130 zl=18:sp=28:br=9:ho=4:gosub1300:i8=i8+1
  79. 5135 return
  80. 5150 i4=m:zl=18:sp=28:br=9:ho=4:i5=1:gosub1100:zl=zl+1:sp=sp+1:gosub1200
  81. 5155 print"[205]onth?"
  82. 5160 zl=zl+2:gosub1200:lg=10:gosub1400
  83. 5165 ifen$=""then5190
  84. 5170 m=val(en$):ifm>0andm<13thenm$=mo$(m):goto5185
  85. 5175 i4=len(en$):fori9=1to12:ifleft$(mo$(i9),i4)=en$thenm=i9:m$=mo$(m):i9=12
  86. 5180 next
  87. 5185 ifm<1orm>12thenm=i4:goto5150
  88. 5190 zl=18:sp=28:br=9:ho=4:gosub1300:i8=i8+1
  89. 5195 return
  90. 5200 i6=ml%(m)+(m=2)*sj:i4=t:ifmr=-1thenmr=6
  91. 5205 zl=18:sp=28:br=9:ho=4:i5=1:gosub1100:zl=zl+1:sp=sp+1:gosub1200
  92. 5210 print"[196]ay?"
  93. 5215 zl=zl+2:gosub1200:lg=2:gosub1400:ifen$=""then5225
  94. 5220 t$=right$("  "+en$,2):t=val(t$):ift<1ort>i6thent=i4:goto5200
  95. 5225 gosub5500:ifr=0thenr=7
  96. 5230 zl=(r-1)*3+4:sp=int((mr+t-1)/7)*4+3-(t<10):gosub1200:print""t"[146]"
  97. 5235 gosub5260:zl=18:sp=28:br=9:ho=4:gosub1300:i8=i8+1:t=1:tf=-1:zl=1:sp=16
  98. 5240 gosub1200:en$=" ":gosub1800:sp=sp+2:gosub1200:printint(jd+.5)
  99. 5245 return
  100. 5250 md=1+(i8=5):return
  101. 5260 st$=mn$(1,4):ifmd=0thenst$=mn$(1,5):goto5275
  102. 5265 i5=0:ifj<1582or(j=1582andm<10)or(j=1582andm=10andt<15)theni5=1
  103. 5270 ifi5=1thenpoke646,2:st$=""+st$+" !"
  104. 5275 zl=14:sp=28:br=9:ho=1:i5=1:gosub1100:sp=sp+1:gosub1710:poke646,fc:print"[146]"
  105. 5280 return
  106. 5300 gosub5100:jd(0,0)=j:gosub5150:jd(0,1)=m:gosub5500:gosub1900:gosub1950
  107. 5305 gosub5200:jd(0,2)=t:jd(0,3)=jd
  108. 5310 gosub5100:jd(1,0)=j:gosub5150:jd(1,1)=m:gosub5500:gosub1900:gosub1950
  109. 5315 gosub5200:jd(1,2)=t:jd(1,3)=jd
  110. 5320 v1=jd(1,3):v2=jd(0,3):ifv1>v2thenv2=v1:v1=jd(0,3)
  111. 5325 zl=0:sp=16:gosub1710:en$=" ":lg=10:gosub1800
  112. 5330 i9=int(v2-v1+.5):st$=str$(i9)+" d":zl=0:sp=16:gosub1710:i8=6
  113. 5335 return
  114. 5500 sj=(j/400)=(int(j/400)):ifsjthen5515
  115. 5505 sj=(j/100)=(int(j/100)):ifsjthenifmd=1thensj=notsj:goto5515
  116. 5510 sj=(j/4)=(int(j/4))
  117. 5515 i5=-(sj*12):ifm>2theni5=0
  118. 5520 r=int((t/7-int(t/7))*7+.5)-1:ifr<0thenr=6
  119. 5525 i5=t1%(m+i5):v1=t2%(r,i5):i6=val(right$(j$,2)):i5=int(i6/6):
  120. 5530 fori9=0to6:fori4=i5toi5+1:ifi6=t3%(i9,i4)theni6=i9:i9=6:i4=i5+1
  121. 5535 next:next:i5=val(left$(j$,2)):ifi5<15thenmd=0:gosub5260
  122. 5536 ifmdthen5545
  123. 5540 i5=i5-int(i5/7)*7:goto5560
  124. 5545 fori9=0to6:fori4=0to4
  125. 5550 ift4%(i4,i9)=i5theni5=i9:i9=6:i4=4
  126. 5555 next:next
  127. 5560 v2=t5%(i6,i5):i4=v1+v2:r=int((i4/7-int(i4/7))*7+.5)-1:ifr<0thenr=6
  128. 5565 wt$=wt$(r)
  129. 5570 v1=0:i4=j:i5=m:ifm<3theni4=j-1:i5=m+12
  130. 5575 ifmd=1thenv2=val(left$(j$,2)):v1=2-v2+int(v2/4)
  131. 5580 jd=(365.25*(i4+4716))+(int(30.6001*(i5+1)))+t+v1-1524.5
  132. 5590 return
  133. 6000 gosub4800:zl=8:sp=9:br=20:ho=5:i5=3:gosub1100:zl=zl+1:sp=sp+2:gosub1200
  134. 6010 print"[164][197]ternal [195]alendar";
  135. 6020 zl=zl+2:sp=sp+2:gosub1200:print"ded. to [199][207]64!"
  136. 6030 zl=zl+2:sp=sp-3:gosub1200:print"(c)1999";
  137. 6040 sp=sp+8:gosub1200:print"[193]rndt [196]ettke[144]";
  138. 6050 zl=zl-4:sp=sp+10:gosub1200:lg=1:gosub1400
  139. 6060 zl=8:sp=9:br=20:ho=5:gosub1300
  140. 6070 return
  141. 6100 zl=8:sp=5:br=29:ho=5:i5=0:gosub1100:zl=zl+1:sp=sp+1:gosub1200:i7=0
  142. 6105 print"[211]earching for [210][212][195]-[195]locks..."
  143. 6110 zl=zl+2:gosub1200:print"[213]:":st$="":sp=sp+2
  144. 6115 fori8=8to16:poke144,0:poke780,i8:sys60684:poke782,0:sys60857:ifstthen6135
  145. 6120 gosub1200:printi8:open1,i8,15:print#1,"t-ra"
  146. 6125 get#1,en$:st$=st$+en$:ifst<>64then6125
  147. 6130 close1:ifval(st$)=0thendr$(i8-8)=st$:sp=sp+3:i7=i7+1
  148. 6135 st$="":gosub1200:print"   ";:next
  149. 6140 zl=zl+2:sp=6:gosub1200
  150. 6145 ifi7=0thenprint"[206]o [195]lock found.";:lg=1:gosub1400:goto6195
  151. 6150 for i8=0to8:st$=dr$(i8):ifst$=""then6190
  152. 6155 zl=9:sp=6:lg=27:en$=" ":gosub1200:gosub1800:gosub1200:lg=1
  153. 6160 printst$:zl=13
  154. 6165 gosub1200:print"[193]ccept date? (y/n) ";
  155. 6170 gosub1400:ifen$<>"y"anden$<>"n"then6165
  156. 6175 ifen$="n"then6190
  157. 6180 i8=8:m=val(mid$(st$,6,2)):j=val(mid$(st$,12,2)):ifj<90thenj=j+100
  158. 6185 j=1900+j:gosub5500
  159. 6190 next
  160. 6195 zl=8:sp=5:br=29:ho=5:gosub1300:return
  161. 59000 i9=0:i8=0:i7=0:i6=0:i5=0:i4=0:zl=0:sp=0:br=0:ho=0:x9$="":en$="":st$=""
  162. 59005 t=1:m=1:j=1999:sj=0:r=0:md=1:wt$="":v1=0:v2=0:tf=0:i3=0:jd=0
  163. 59010 read mn,sm,mb:dim mn$(mn,sm),mn%(mn),l$(1),k$(3,8),mo$(12),wt$(6)
  164. 59015 dim t1%(14),t2%(6,6),t3%(6,17),t4%(4,6),t5%(6,6),ml%(12),jd(1,3),dr$(8)
  165. 59020 fori9=1tomn:readmn$(i9,0):next
  166. 59025 fori8=1tomn:readmn%(i8):sm=mn%(i8):fori9=1tosm:readmn$(i8,i9):next:next
  167. 59030 fori9=0to3:fori8=0to8:readk$(i9,i8):next:next
  168. 59035 fori9=1to12:readmo$(i9):next:t$=str$(t):m$=mo$(m):j$=right$(str$(j),4)
  169. 59036 fori9=1to12:readml%(i9):next
  170. 59040 fori8=0to6:readwt$(i8):fori9=0to6:readt2%(i8,i9):next:next
  171. 59045 fori9=1to14:readt1%(i9):next
  172. 59050 fori8=0to6:fori9=0to17:readt3%(i8,i9):next
  173. 59055 fori9=0to6:readt5%(i8,i9):next:next
  174. 59060 fori8=0to4:fori9=0to6:readt4%(i8,i9):next:next
  175. 59070 poke56576,148:poke53272,59:poke648,204
  176. 59080 l$(0)="                                       ":lg=1
  177. 59085 l$(1)="[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]"
  178. 59090 fc=0 :fb=1 :fr=12:poke53281,fb:poke53280,fr:poke646,fc:print"[147]";
  179. 59095 gosub4800
  180. 59099 return
  181. 60000 data 1,9,9:rem number of menues,max. number submenues, menuewidth
  182. 60010 data "[195][193][204][197][206][196][193][210]"
  183. 60030 data 9,"[217]ear","[205]onth","[196]ay"
  184. 60040 data "[199]regor.","[202]ulian.","[201]nterval","[208]rint"
  185. 60050 data "[193]bout...","[197]xit"
  186. 60060 data"[167]","[168]","[169]","[165]"," ","[170]","[173]","[164]","[174]"
  187. 60070 data"[188]","[177]","[189]","[187]"," ","[184]","[190]","[178]","[191]"
  188. 60080 data"[182]","[183]","[180]","[182]"," ","[180]","[182]","[175]","[180]"
  189. 60090 data"[166]","[163]","[162]","[165]"," ","[182]","[220]","[161]","[221]"
  190. 60095 data "[202]anuary","[198]ebruary","[205]arch","[193]pril","[205]ay","[202]une","[202]uly","[193]ugust"
  191. 60096 data "[211]eptember","[207]ctober","[206]ovember","[196]ecember"
  192. 60097 data 31,28,31,30,31,30,31,31,30,31,30,31
  193. 61000 data "[211]unday",6,5,2,1,7,3,4
  194. 61005 data "[205]onday",7,6,3,2,1,4,5
  195. 61010 data "[212]uesday",1,7,4,3,2,5,6
  196. 61015 data "[215]ednesday",2,1,5,4,3,6,7
  197. 61020 data "[212]hursday",3,2,6,5,4,7,1
  198. 61025 data "[198]riday",4,3,7,6,5,1,2
  199. 61030 data "[211]aturday",5,4,1,7,6,2,3
  200. 61035 data 0,2,2,1,4,5,1,3,6,0,2,6,1,3
  201. 61040 data 0,6,0,17,23,28,34,0,45,51,56,62,0,73,79,84,90,0
  202. 61045 data 7,6,5,4,3,2,1
  203. 61050 data 1,7,12,18,0,29,35,40,46,0,57,63,68,74,0,85,91,96
  204. 61055 data 1,7,6,5,4,3,2
  205. 61060 data 2,0,13,19,24,30,0,41,47,52,58,0,69,75,80,86,0,97
  206. 61065 data 2,1,7,6,5,4,3
  207. 61070 data 3,8,14,0,25,31,36,42,0,53,59,64,70,0,81,87,92,98
  208. 61075 data 3,2,1,7,6,5,4
  209. 61080 data 0,9,15,20,26,0,37,43,48,54,0,65,71,76,82,0,93,99
  210. 61085 data 4,3,2,1,7,6,5
  211. 61090 data 4,10,0,21,27,32,38,0,49,55,60,66,0,77,83,88,94,0
  212. 61095 data 5,4,3,2,1,7,6
  213. 61100 data 5,11,16,22,0,33,39,44,50,0,61,67,72,78,0,89,95,0
  214. 61105 data 6,5,4,3,2,1,7
  215. 61110 data 0,0,0,0,15,16,0
  216. 61115 data 17,0,18,0,19,20,0
  217. 61120 data 21,0,22,0,23,24,0
  218. 61125 data 25,0,26,0,27,28,0
  219. 61130 data 29,0,30,0,31,32,0
  220.